package com.ruoyi.system.service;

import java.util.List;
import java.util.Map;

import com.ruoyi.system.domain.GeneralConfiguration;

/**
 * 假期设置Service接口
 * 
 * @author ruoyi
 * @date 2022-09-25
 */
public interface IGeneralConfigurationService
{
    /**
     * 查询假期设置
     * 
     * @param id 假期设置主键
     * @return 假期设置
     */
    public GeneralConfiguration selectHolidaySettingsById(Long id);

    /**
     * 查询假期设置列表
     * 
     * @param generalConfiguration 假期设置
     * @return 假期设置集合
     */
    public List<GeneralConfiguration> selectHolidaySettingsList(GeneralConfiguration generalConfiguration);

    /**
     * 新增假期设置
     * 
     * @param generalConfiguration 假期设置
     * @return 结果
     */
    public int insertHolidaySettings(GeneralConfiguration generalConfiguration);

    /**
     * 修改假期设置
     * 
     * @param generalConfiguration 假期设置
     * @return 结果
     */
    public int updateHolidaySettings(GeneralConfiguration generalConfiguration);

    /**
     * 批量删除假期设置
     * 
     * @param ids 需要删除的假期设置主键集合
     * @return 结果
     */
    public int deleteHolidaySettingsByIds(Long[] ids);

    /**
     * 删除假期设置信息
     * 
     * @param id 假期设置主键
     * @return 结果
     */
    public int deleteHolidaySettingsById(Long id);

    /**
     * 导入假期设置
     * @param generalConfigurationList
     * @param updateSupport
     */
    void importHolidaySettings(List<GeneralConfiguration> generalConfigurationList, boolean updateSupport);

    /**
     * 保存考勤信息
     * @param map
     * @return
     */
    int saveAttendanceSetting(Map<String, Object> map);

    /**
     * 查询考勤设置信息
     * @return
     */
    List<GeneralConfiguration> selectAttendanceList();

    /**
     * 判断是否存在type这个假期设置项
     * @param type
     * @return
     */
    GeneralConfiguration selectHolidaySettingsByType(String type);

    /**
     * 根据类型获取类型值
     * @param type-
     * @return
     */
    String selectHolidaySettingByType(String type);
}
